package com.hll.service;

import com.alibaba.fastjson.JSONObject;

import java.util.List;

/**
 * Created by CGL on 2017-06-24 14:18:45.
 */
public interface BaseService<T, Q, P> {
    T getById(P var1);

    List<T> getByIds(List<P> var1);

    T selectByPrimaryKey(P var1);

    List<T> selectByPrimaryKeys(List<P> var1);

    List<T> selectByExample(Q var1);

    List<T> selectByExampleWithBLOBs(Q var1);

    Object insert(T var1);

    Object insertSelective(T var1);

    void insertBatch(List<T> var1);

    void insertSelectiveBatch(List<T> var1);

    Object insertByJSON(String var1);

    Object insertByJSONObject(JSONObject var1);

    Object insertSelectiveByJSON(String var1);

    Object insertSelectiveByJSONObject(JSONObject var1);

    int updateByPrimaryKey(T var1);

    int updateByJSONPrimaryKey(String var1);

    int updateByJSONObjectPrimaryKey(JSONObject var1);

    int updateByJSONObjectPrimaryKeySelective(JSONObject var1);

    int updateByPrimaryKeySelective(T var1);

    int updateByExample(T var1, Q var2);

    int updateByExampleSelective(T var1, Q var2);

    int updateByExampleWithBLOBs(T var1, Q var2);

    int countByExample(Q var1);

    int deleteByPrimaryKey(P var1);

    int deleteByExample(Q var1);
}
